package com.yanfan.protocol.utils;

public class ModbusOffsetUtils {
    private static final int BASE_OFFSET = 256; // 基础偏移量
    private static final int OFFSET_INCREMENT = 256; // 每个从站的偏移增量

    /**
     * 生成从站ID和对应的偏移量
     *
     * @param slaveCount 从站的数量
     * @return 生成的偏移量列表
     */
    public static int[] generateOffsets(int slaveCount) {
        if (slaveCount <= 0) {
            throw new IllegalArgumentException("从站数量必须大于0");
        }

        int[] offsets = new int[slaveCount];
        for (int i = 0; i < slaveCount; i++) {
            offsets[i] = BASE_OFFSET + i * OFFSET_INCREMENT;
        }
        return offsets;
    }

    public static void main(String[] args) {
        int slaveCount = 11; // 这里可以设置从站数量
        int[] offsets = generateOffsets(slaveCount);

        for (int i = 0; i < offsets.length; i++) {
            System.out.println("从站 ID: " + (i + 1) + ", 偏移量: " + offsets[i]);
        }
    }
}
